PlanLoop는 LLM 기반의 다중 에이전트를 활용하여 일정을 생성하고 반복적으로 개선하는 시스템이다.
단일 AI가 아닌, Planner / Evaluator / Optimizer 역할을 분리하여 협업을 통해 더 나은 결과를 도출하는 구조를 구현하였다.
- Planner: 사용자 요청 기반 초기 일정 생성
- Evaluator: 일정의 품질 평가 및 문제점 분석
- Optimizer: 평가 결과를 반영하여 일정 개선
- Iteration Loop: 일정이 충분히 개선될 때까지 반복 수행
- pandas 기반 분석: 일정 개수, 휴식 비율 등 데이터 요약 제공
이 시스템은 다음과 같은 흐름으로 동작한다.
- Planner가 초기 계획 생성
- Evaluator가 점수 및 문제점 분석
- Optimizer가 계획 개선
- 위 과정을 반복 수행
- 일정이 충분히 개선되면 종료
여러 에이전트가 협업하여 결과 품질을 향상시키는 구조이다.
pip install -r requirements.txt
python src/main.pydocker build -t planloop .
docker run -it --env-file .env planloop.env 파일에 API 키를 설정해야 한다.
OPENAI_API_KEY=your_openrouter_api_keypython -m pytest- Python
- OpenAI SDK (OpenRouter API)
- pandas
- Docker
| 라이브러리 | 용도 | 선택 이유 |
|---|---|---|
| openai | LLM API 호출 | 다양한 모델을 쉽게 사용할 수 있음 |
| python-dotenv | 환경 변수 관리 | API 키를 안전하게 관리 |
| pandas | 데이터 분석 | 일정 데이터를 구조화하고 통계 분석 가능 |
| pytest | 테스트 실행 | 코드 기능 검증 자동화 |
- requests: 직접 HTTP 요청 가능하지만, openai SDK가 더 간편함
- numpy: 데이터 처리 가능하지만, pandas가 더 직관적
pip-audit을 사용하여 의존성 보안 점검을 수행하였다.
python -m pip_audit점검 결과, pip 패키지에서 CVE-2026-3219 취약점이 발견되었으나 해당 문제는 프로젝트 코드가 아닌 pip 자체에 관련된 것으로, 본 프로젝트 기능에는 직접적인 영향을 주지 않는 것으로 판단하였다.
- ChatGPT를 활용하여 코드 생성 및 개선 수행
- 실행을 통해 오류 발생 여부 확인
- Docker 환경에서 실행하여 환경 의존성 문제 점검
- API 호출 정상 동작 확인
- 에이전트 반복 루프 정상 동작 확인
-
logger.py 오류 수정
- 문제: Docker 환경에서 docs 폴더가 없어 오류 발생
- 해결: 폴더 자동 생성 로직 추가
-
에이전트 출력 언어 문제
- 문제: Evaluator가 영어로 출력됨
- 해결: 프롬프트에 한국어 출력 조건 추가
-
Iteration 종료 조건 개선
- 문제: 충분히 좋은 결과에도 반복 계속됨
- 해결: 점수 및 변화 여부 기준으로 종료 조건 추가
-
pandas 데이터 분석 기능 추가
- 문제: 데이터 처리 기능 부족
- 해결: 일정 데이터를 DataFrame으로 변환하여 분석 추가
-
Docker 실행 오류 해결
- 문제: dotenv 및 API 키 오류 발생
- 해결: requirements 및 환경 변수 설정 수정
AI를 활용하면 빠르게 코드를 생성할 수 있지만, 반드시 검증과 수정 과정이 필요하다는 것을 확인하였다.
특히 Docker, API, 파일 구조와 같은 부분은 직접 이해하고 수정해야 안정적으로 동작한다.
MIT License
- 자유로운 사용 및 수정 가능
- 학습용 프로젝트에 적합
- 오픈소스 확장에 유리
- 에이전트 기반 협업 시스템 구현
- 반복 개선 구조 (Iteration Loop)
- Docker 기반 실행 환경 제공
- pandas 기반 데이터 분석 포함
- 보안 점검 및 라이선스 고려
본 프로젝트는 단순한 일정 생성 프로그램이 아니라, 여러 에이전트가 협업하여 결과를 개선하는 AI 기반 소프트웨어 구조를 구현한 시스템이다.